/*************************************************************************
@Author: bighu
@Created Time : 2022年04月05日 星期二 14时34分48秒
@File Name: filemon.go
@Description:
************************************************************************/
package main

import (
	"fmt"
	"os"
	"runtime"

	"github.com/howeyc/fsnotify"
)

//exit bool类型,用于chan传递数据
var exit chan bool

func main() {
	//新建一个watcher
	watcher, err := fsnotify.NewWatcher()
	if err != nil {
		funcGetE(err)
		return
	}
	go func() {
		fmt.Println("开始监听文件系统")
		for {
			select {
			case e := <-watcher.Event:
				if e.IsCreate() {
					fmt.Println("文件被创建")
				}
				if e.IsModify() {
					fmt.Println("文件被修改")
				}
			case err := <-watcher.Error:
				funcGetE(err)
			}
		}
	}()
	paths := []string{"go"}
	for _, path := range paths {
		err = watcher.Watch(path)
		if err != nil {
			funcGetE(err)
		}
	}

	<-exit
	runtime.Goexit()
}

func funcGetE(err error) {
	if err != nil {
		fmt.Fprintf(os.Stderr, "Fatal error:%s", err.Error())
	}
}
